#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2021-12-2 15:27
# @Author : huabao.tan
# @File : logger_.py
# @Software: PyCharm
import logging
import os
import datetime

class Log:
    def __init__(self, name):
        self.logger = logging.getLogger(name)     # 创建一个logger实例
        self.logger.setLevel(logging.INFO)  # 设置日志级别

        # 设置日志 文件名
        log_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        log_dir = log_dir+"\\Logs"
        log_file = datetime.datetime.now().strftime("%Y%m%d%H%M%S") + ".log"  ##定义日志名
        log_name = log_dir + '\\' + log_file  ##路径名+日志名

        # 将日志输出到文件
        self.file_handle = logging.FileHandler(log_name, 'a', encoding='utf-8')
        # 将日志输出到控制台
        self.console_handle = logging.StreamHandler()


        # 定义日志输出信息格式
        formatter = logging.Formatter('%(asctime)s %(filename)s ---> %(funcName)s %(levelno)s : %(levelname)s ---> %(message)s')


        # 文件输出格式
        self.file_handle.setFormatter(formatter)  # 添加格式
        self.logger.addHandler(self.file_handle)  # 添加到处理器

        # 控制台输出格式
        self.console_handle.setFormatter(formatter)  # 添加格式
        self.logger.addHandler(self.console_handle)  # 添加到处理器


    def get_log(self):
        #发挥logger实例
        return self.logger

    def close_handle(self):
        # 移除处理器
        self.logger.removeHandler(self.file_handle)
        self.logger.removeHandler(self.console_handle)
        self.file_handle.close()

if __name__ == '__main__':
    user=Log("sd")
    log=user.get_log()
    log.info("__nice__")
